package com.sduept.zj103;

import java.io.IOException;

import org.tio.server.TioServer;
import org.tio.server.TioServerConfig;
import org.tio.server.intf.TioServerHandler;
import org.tio.server.intf.TioServerListener;

public class Zj103Server {
    public static TioServerHandler tioHandler;
    public static TioServerListener tioListener;
    //一组连接共用的上下文对象
    public static TioServerConfig serverConfig;
    //tioServer对象
    public static TioServer tioServer;
    
    private volatile static Zj103Server serverStarterInstance = null;
    public static Zj103Server getInstance() {
        if(serverStarterInstance == null) {
            synchronized (Zj103Server.class) {
                if(serverStarterInstance == null) {
                    serverStarterInstance = new Zj103Server();
                }
            }
        }
        return serverStarterInstance;
    }
    public TioServerConfig getServerTioConfig() {
        return serverConfig;
    }

    public static void start(String ip, int port) throws IOException {
        tioHandler= new Zj103ServerHandler();
        tioListener = null;
        serverConfig = new TioServerConfig("TioSiteImServer", tioHandler, tioListener);
        //serverTioConfig.setHeartbeatTimeout(5000);

        tioServer = new TioServer(serverConfig);
        tioServer.start(ip, port);
    }

    public static void close(){
        tioServer.stop();
    }

}
